New test "rewrite-url, without to-version" needs network

  • Done
  • quality assurance status badge
Details
3 participants
  • Janneke Nieuwenhuizen
  • Ludovic Courtès
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Janneke Nieuwenhuizen
Severity
normal
J
J
Janneke Nieuwenhuizen wrote on 19 Sep 2023 07:04
(address . bug-guix@gnu.org)
87y1h2kb2i.fsf@gnu.org
Hi Maxim,

As mentioned on IRC, the recently-added "rewrite-url, without
to-version" test needs not only nss-certs installed, as I found when
building it for the Hurd. New we also found it to fail in a container
without network access. That means a guix package build (in a
container) now fails.

After I updated the guix version to 1.4.0-11.658de25e99 yesterday
morning to (finally) get `guix pull' to work on the Hurd, several people
reported failure to reconfigure on IRC.

This

guix shell -CD guix
export SCM_LOG_DRIVER_FLAGS="--select=^rewrite-url, without to-version"
make check TESTS=tests/gnu-maintenance.scm

gives

Toggle snippet (9 lines)
test-name: rewrite-url, without to-version
[..]
expected-value: "https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz"
actual-value: #f
actual-error:
+ (getaddrinfo-error -8)
result: FAIL

When changing the code like this

Toggle snippet (7 lines)
-(test-equal "rewrite-url, without to-version"
+(pk "rewrite-url, without to-version"
"https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz"
- (with-http-server
+ "=>"(with-http-server

to create a backtrace, I get

Toggle snippet (33 lines)
Backtrace:
15 (primitive-load-path "tests/gnu-maintenance.scm")
In ice-9/eval.scm:
214:21 14 (_ #f)
217:33 13 (lp (#<procedure 7fd526cfcc60 at ice-9/eval.scm:182:7 ?>))
In guix/tests/http.scm:
174:8 12 (call-with-http-server _ _)
In guix/gnu-maintenance.scm:
568:6 11 (rewrite-url _ "1.45.0" #:to-version _)
In srfi/srfi-1.scm:
460:18 10 (fold #<procedure 7fd526d03bc0 at guix/gnu-maintenance?> ?)
In guix/gnu-maintenance.scm:
500:16 9 (_ _ ("dist" "dist.libuv.org" "" "https:"))
In ice-9/exceptions.scm:
406:15 8 (update-cache _)
In ice-9/boot-9.scm:
1752:10 7 (with-exception-handler _ _ #:unwind? _ # _)
In guix/http-client.scm:
340:20 6 (_)
107:28 5 (http-fetch _ #:port _ #:text? _ #:buffered? _ # _ # _ # ?)
In guix/build/download.scm:
468:4 4 (open-connection-for-uri _ #:timeout _ # _)
469:14 3 (thunk)
396:8 2 (open-socket-for-uri _ #:timeout _)
In unknown file:
1 (getaddrinfo "dist.libuv.org" "https" 32 #<undefined> # #)
In ice-9/boot-9.scm:
1685:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure getaddrinfo: Servname not supported for ai_socktype

Greetings,
Janneke

PS: Without nss-certs installed, which was the usual case in a childhurd
until yesterday, I got

Toggle snippet (8 lines)
+ (tls-certificate-error
+ invalid-certificate
+ #<x509-certificate 4c1a3b0>
+ "dist.libuv.org"
+ (#<gnutls-certificate-status-enum signer-not-found>
+ #<gnutls-certificate-status-enum invalid>))

backtrace:

Toggle snippet (29 lines)
Backtrace:
11 (primitive-load-path "tests/gnu-maintenance.scm")
In guix/tests/http.scm:
174:8 10 (call-with-http-server _ _)
In guix/gnu-maintenance.scm:
568:6 9 (rewrite-url _ "1.45.0" #:to-version _)
In srfi/srfi-1.scm:
460:18 8 (fold #<procedure 6362b20 at guix/gnu-maintenance.scm:569:7 (s parents)> _ _)
In guix/gnu-maintenance.scm:
500:16 7 (_ _ ("dist" "dist.libuv.org" "" "https:"))
In ice-9/exceptions.scm:
406:15 6 (update-cache _)
In ice-9/boot-9.scm:
1752:10 5 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In guix/http-client.scm:
340:20 4 (_)
107:28 3 (http-fetch _ #:port _ #:text? _ #:buffered? _ #:open-connection _ # _ # _ # _ ?)
In guix/build/download.scm:
468:4 2 (open-connection-for-uri _ #:timeout _ #:verify-certificate? _)
360:6 1 (tls-wrap #<closed: file 637fe70> _ #:verify-certificate? _)
In ice-9/boot-9.scm:
1685:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
X.509 certificate of 'dist.libuv.org' could not be verified:
signer-not-found
invalid

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
M
M
Maxim Cournoyer wrote on 20 Sep 2023 20:05
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87h6no4t53.fsf@gmail.com
Hi Janneke!

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (8 lines)
> Hi Maxim,
>
> As mentioned on IRC, the recently-added "rewrite-url, without
> to-version" test needs not only nss-certs installed, as I found when
> building it for the Hurd. New we also found it to fail in a container
> without network access. That means a guix package build (in a
> container) now fails.

Ouch! That's clearly not intended.

Toggle quote (29 lines)
> After I updated the guix version to 1.4.0-11.658de25e99 yesterday
> morning to (finally) get `guix pull' to work on the Hurd, several people
> reported failure to reconfigure on IRC.
>
> This
>
> guix shell -CD guix
> export SCM_LOG_DRIVER_FLAGS="--select=^rewrite-url, without to-version"
> make check TESTS=tests/gnu-maintenance.scm
>
> gives
>
> test-name: rewrite-url, without to-version
> [..]
> expected-value: "https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz"
> actual-value: #f
> actual-error:
> + (getaddrinfo-error -8)
> result: FAIL
>
>
> When changing the code like this
>
> -(test-equal "rewrite-url, without to-version"
> +(pk "rewrite-url, without to-version"
> "https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz"
> - (with-http-server
> + "=>"(with-http-server

Thanks for the reproducer. I'll look into fixing the problem. I
believe it's a matter of adding more mocked server replies. I must have
miscounted how many were needed.

--
Thanks,
Maxim
L
L
Ludovic Courtès wrote on 28 Sep 2023 00:09
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87y1grz2s7.fsf@gnu.org
Hi!

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (12 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
>> Hi Maxim,
>>
>> As mentioned on IRC, the recently-added "rewrite-url, without
>> to-version" test needs not only nss-certs installed, as I found when
>> building it for the Hurd. New we also found it to fail in a container
>> without network access. That means a guix package build (in a
>> container) now fails.
>
> Ouch! That's clearly not intended.

I went ahead and fixed it in 72fc91b113564f8006094c0118f06af0f414d21b.

Let me know if anything’s unclear!

Ludo’.
L
L
Ludovic Courtès wrote on 28 Sep 2023 00:09
control message for bug #66097
(address . control@debbugs.gnu.org)
87wmwbz2s0.fsf@gnu.org
close 66097
quit
?